﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using RG.Common;
using RG.Consts;

namespace RealtorGuide.Classes
{
    public interface IApartmentService : IHugeDataService<Apartment,ApartmentsQueryParams> 
    {
    }

    
    [DataContract]
    public class Apartment : IApartment<Manager,MicroArea>
    {
        public Apartment()
        {
            Description = string.Empty;
            Address = string.Empty;
            Manager = new Manager();
            MicroArea = new MicroArea();
        }

        /// <summary>
        /// Код
        /// </summary>
        [DataMember]
        public int Id { get; set; }
        /// <summary>
        /// Менеджер
        /// </summary>
        [DataMember]
        public Manager Manager { get; set; }
        /// <summary>
        /// Количество комнат
        /// </summary>
        [DataMember]
        public int CountOfRooms { get; set; }
        /// <summary>
        /// Район
        /// </summary>
        [DataMember]
        public AreasOfTheCity Area { get; set; }
        /// <summary>
        /// МикроРайон
        /// </summary>
        [DataMember]
        public MicroArea MicroArea { get; set; }
        /// <summary>
        /// Цена
        /// </summary>
        [DataMember]
        public decimal Cost { get; set; }
        /// <summary>
        /// Площадь
        /// </summary>
        [DataMember]
        public decimal Square { get; set; }
        /// <summary>
        /// Этажность
        /// </summary>
        [DataMember]
        public int NumberOfStoreys { get; set; }
        /// <summary>
        /// Этаж
        /// </summary>
        [DataMember]
        public int Floor { get; set; }
        /// <summary>
        /// Материал
        /// </summary>
        [DataMember]
        public TypeOfMaterial TypeOfMaterial { get; set; }
        /// <summary>
        /// Дата создания
        /// </summary>
        [DataMember]
        public DateTime CreateDate { get; set; }
        /// <summary>
        /// Время создания
        /// </summary>
        [DataMember]
        public DateTime CreateTime { get; set; }
        /// <summary>
        /// Состояние
        /// </summary>
        [DataMember]
        public ApartmentState State { get; set; }
        /// <summary>
        /// Описание
        /// </summary>
        [DataMember]
        public string Description { get; set; }

        /// <summary>
        /// Адрес
        /// </summary>
        [DataMember]
        public string Address { get; set; }
    }


}
